﻿using System;
using System.Collections.Generic;
using Ymatou.Evaluate.Buyer.Model.ApiModel.Request.Operator;
using Ymatou.Evaluate.Buyer.Model.ApiModel.Response.Operator;
using Ymatou.Evaluate.Entity;

namespace Ymatou.Evaluate.Service.Buyer.Interface
{
    public interface IBuyerOperatorService
    {
        /// <summary>
        /// 初始化评价状态
        /// </summary>
        /// <param name="orderId"></param>
        /// <param name="sellerId"></param>
        /// <param name="buyerId"></param>
        /// <returns></returns>
        bool AddEvaluateStatus(int orderId, int sellerId, int buyerId, out string msg);

        /// <summary>
        /// 删除评价
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        RemoveEvaluateResponse RemoveEvaluate(RemoveEvaluateRequest request, out string msg);

        /// <summary>
        /// 提交评价
        /// </summary>
        /// <param name="request"></param>
        /// <param name="msg"></param>
        /// <param name="isNeedCounter">是否需要计数</param>
        /// <returns></returns>
        SubmitEvaluateResponse SubmitEvaluate(SubmitEvaluateRequest request, out string msg, bool isNeedCounter = true);

        /// <summary>
        /// 自动评价
        /// </summary>
        /// <returns></returns>
        bool AutoEvaluate(AutoEvaluateRequest request);

        /// <summary>
        /// 洗数据用
        /// </summary>
        /// <returns></returns>
        [Obsolete("洗数据用")]
        void AutoSubmitEvaluate(AutoSubmitEvaluateRequest request);

        /// <summary>
        /// 洗数据用
        /// </summary>
        /// <returns></returns>
        [Obsolete("洗数据用")]
        void AutoInitEvaluate(AutoSubmitEvaluateRequest request);

        /// <summary>
        /// 重置评价数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        ResetEvaluateResponse ResetEvaluate(ResetEvaluateRequest request);

        [Obsolete("同步历史订单评价数据")]
        void AutoEvalOrderHis(AutoSubmitEvaluateRequest request);
    }
}
